`timescale 1ns / 1ps

module debouncer_tb_v;
    parameter sim = 1;
	// Inputs
	reg clk;
	reg r;
	reg en;

	// Outputs
    wire out;

    debouncer #(.sim(sim)) debouncer_inst(
        .clk(clk), .reset(r), .in(en), .out(out)
    );

   //clk
   always #10 clk=~clk;
	
	//  r
	initial begin
	   clk = 0;
		r = 0;
		#16  r = 1;
		#10  r = 0; 	end
  	//  en
	initial begin
		en = 0;
		#5;
		repeat (500)  begin 
	     #(1*3)  en=1;
	     # 1  en=0; end
		en = 1;
	   #500000;
		repeat (500)  begin 
	     #(1*3)  en=1;
	     # 1  en=0; end
	   en = 0;
	   #10000;


     #10 $stop;
 end
  
endmodule

